#define _CRT_SECURE_NO_WARNINGS 1

#include<iostream>

using namespace std;

const int N = 15;

int n;
int w[N][N];
int f[N * 2][N][N];

int main()
{
    cin >> n;

    int a, b, c;
    while (cin >> a >> b >> c, a || b || c)   w[a][b] = c;

    for (int k = 2; k <= n + n; k++)
        for (int i1 = 1; i1 <= n; i1++)
            for (int i2 = 1; i2 <= n; i2++)
            {
                int j1 = k - i1, j2 = k - i2;
                if (j1 >= 1 && j1 <= n && j2 >= 1 && j2 <= n)
                {
                    int t = w[i1][j1];
                    if (i1 != i2)    t += w[i2][j2];
                    f[k][i1][i2] = max(f[k][i1][i2], f[k - 1][i1 - 1][i2 - 1] + t);
                    f[k][i1][i2] = max(f[k][i1][i2], f[k - 1][i1][i2 - 1] + t);
                    f[k][i1][i2] = max(f[k][i1][i2], f[k - 1][i1 - 1][i2] + t);
                    f[k][i1][i2] = max(f[k][i1][i2], f[k - 1][i1][i2] + t);
                }
            }

    cout << f[n + n][n][n] << endl;
    return 0;
}

//#include<iostream>
//
//using namespace std;
//
//const int N = 1010;
//
//int h[N];
//int f[N], g[N];
//
//int main()
//{
//    int n;
//    scanf("%d", &n);
//    for (int i = 1; i <= n; i++)   scanf("%d", &h[i]);
//
//    int res = 0;
//    for (int i = 1; i <= n; i++)
//    {
//        f[i] = 1;
//        for (int j = 1; j < i; j++)
//            if (h[i] > h[j]) f[i] = max(f[i], f[j] + 1);
//    }
//
//    for (int i = n; i; i--)
//    {
//        g[i] = 1;
//        for (int j = n; j > i; j--)
//            if (h[i] > h[j]) g[i] = max(g[i], g[j] + 1);
//    }
//
//    for (int i = 1; i <= n; i++)
//        res = max(res, f[i] + g[i] - 1);
//
//    printf("%d\n", res);
//    return 0;
//}

//#include<iostream>
//#include<algorithm>
//
//using namespace std;
//
//typedef pair<int, int> PII;
//
//const int N = 5010;
//
//int n;
//PII q[N];
//int f[N];
//
//int main()
//{
//    scanf("%d", &n);
//    for (int i = 1; i <= n; i++)   scanf("%d%d", &q[i].first, &q[i].second);
//
//    sort(q + 1, q + n + 1);
//
//    int res = 0;
//    for (int i = 1; i <= n; i++)
//    {
//        f[i] = 1;
//        for (int j = 1; j <= n; j++)
//            if (q[j].second < q[i].second)   f[i] = max(f[i], f[j] + 1);
//        res = max(res, f[i]);
//    }
//
//    printf("%d\n", res);
//    return 0;
//}